<!--
title: SQL数据库
description: 
published: true
date: 2025-06-17T04:28:33.817Z
tags: 
editor: ckeditor
dateCreated: 2025-06-17T04:28:33.817Z
-->

<h1>执行SQL</h1>
<p>&nbsp;</p>
<pre><code class="language-plaintext"># 数据库执行SQL语句
data, is_err = sdk_exec_sql(source_id, sql, is_write, fields=fields)</code></pre>
<p>&nbsp;</p>
<ul>
  <li>参数说明：<br>sourceid：数源据id，说明：使用 &nbsp;<code>sdk_exec_sql</code> &nbsp;前需要在《数据源》功能模块下配置数据库。值为 string<br>sql：要执行的SQL语句，包括增删查改。值为 string<br>is_write：SQL语是否是写数据语句（增删改），值为 True/False<br>fields：当执行查询语句需求要加上，值为 []string</li>
  <li>返回说明<br>data：当执行查询语句返回字典数组，值为 []；当执行写语句返回影响行数，值为 int；当is_err等于True时返回报错信息，值为 string；<br>is_err：是否执行成功，值为 True/False</li>
</ul>
<p>&nbsp;</p>
<h2>SQL查询示例</h2>
<p>&nbsp;</p>
<pre><code class="language-plaintext"># 以接口代码为例

# 导入SDK 
global sdk_exec_sql, log_print 
# 数据源ID
db_id = "XXXXXXXXXXXXXXXXXXXXXXXXXX" 
# 要执行的SQL
sql = "select id, username from user"
# 要执行结果字段的KEY, 要和SQL查询的顺序一致
fields = ["id", "username"]
# 执行查询
data, is_err = sdk_exec_sql(db_id, sql, False, fields=fields)
if is_err:
    log_print(data, "ERROR")
    return []
return data</code></pre>
<p>&nbsp;</p>
<h2>SQL操作示例</h2>
<p>&nbsp;</p>
<pre><code class="language-plaintext"># 以接口代码为例

# 导入SDK 
global sdk_exec_sql, log_print 
# 数据源ID
db_id = "XXXXXXXXXXXXXXXXXXXXXXXXXX" 
# 要执行的SQL
sql = "update user set username='new username' where id='XXXXXX'"
# 执行查询
affected_rows, is_err = sdk_exec_sql(db_id, sql, True)
if is_err:
    log_print(affected_rows, "ERROR")
    return 0
return affected_rows</code></pre>
<p>&nbsp;</p>
